#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/wait.h>
int main()
{
    printf("当前进程开始代码\n");

   // execl("/usr/bin/ls","ls",NULL);
    execl("/usr/bin/ls","ls","-l","--color=auto","-a",NULL);
    printf("当前结束开始代码\n");
//    pid_t id = fork();
//    if(id == 0)
//    {
//        int cnt = 5;
//        while(cnt){
//        printf("我是子进程：%d\n",cnt--);
//        sleep(1);
//         }
//        exit(11); 
//    }
//    else if(id>0)
//    {   
//        int quit = 0;
//        while(!quit)
//        {
//            int status = 0;
//            pid_t res = waitpid(-1,&status,WNOHANG);
//            if(res>0)
//            {
//                //等待成功 && 子进程退出
//                printf("等待子成功，退出码：%d\n",WEXITSTATUS(status));
//                quit = 1;
//            }
//            else if(res == 0)
//            {
//                //等待成功 && 子进程未退出
//                printf("子还在运行，父亲等一等，做其他的？？\n");
//                sleep(1);
//            }
//            else
//            {
//                //等待失败
//                printf("wait失败\n");
//            }
//        }


//        int status = 0;
//        //id = -1 等待任意进程
//        pid_t result = waitpid(id,&status,WNOHANG);
//        if(result > 0)
//        {
//            //printf("父进程等待成功，退出码：%d ，退出信号：%d\n",(status >>8)&0xff,(status)&0x7f);
//            if(WIFEXITED(status))
//            {
//                printf("子进程执行完毕，退出码为：%d\n",WEXITSTATUS(status));
//            }else{
//                printf("子进程异常退出，退出码为：%d\n",WEXITSTATUS(status));
//            }
//        }
//    }
    return 0;
}
